﻿using System;
namespace UCL.Powersource
{
    public interface IStatisticManagerQueue : INotifyPropertyChangedEx, IInitiliazedLifeCycle
    {
        IStatisticManagerQueueItem EnqueueStatisticRecalculationAsync(UCL.Powersource.Analysis.IStatistic statistic, ITfsTeamProjectConfiguration teamProject, ITimeFrame timeframe, bool forceRecalculate);
        event EventHandler<StatisticManagerQueueUpdatedEventArgs> StatisticManagerQueueUpdated;
        bool IsCalculating { get; }
        string CurrentAction { get; }
        int WaitingStatsCount { get; }
        int FinishedStatsCount { get;  }

        bool IsCurrentThreadUIThread(System.Threading.Thread thread);
    }
}
